#include<sys/mman.h>
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>

int main(){
	void * addr;
	int fd;
	//打开文件，供mmap函数使用
	fd = open("test", O_RDWR);
	if(fd < 0){
		perror("open");
		return 0;
	}

	//可以通过lseek获取文件大小
	//int len = lseek(fd, 0, SEEK_END);
	
	//mmap创建共享内存
	addr = mmap(NULL, 8000, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
	if(addr == MAP_FAILED){
		perror("mmap");
		return 0;
	}

	//mmap创建成功后，就可以把文件关闭了。不影响mmap的使用
	close(fd);

	//往共享内存写数据
	memcpy(addr+9000, "sss", 3);

	printf("read=%s", (char *)(addr + 9000));

}
